#ifndef RANDOMGENERATOR_H
#define RANDOMGENERATOR_H

#include <QString>
#include <QRandomGenerator>

class RandomGenerator {
public:
    RandomGenerator();
    ~RandomGenerator();
    
    // 生成随机字符串
    QString generateString(int length, bool useUpperCase = true, bool useLowerCase = true, bool useNumbers = false);
    
    // 生成随机标识符（符合编程语言命名规则）
    QString generateIdentifier(int length);
    
    // 生成随机整数
    int generateInt(int min, int max);
    
    // 生成随机浮点数
    double generateDouble(double min, double max);
    
    // 从列表中随机选择
    template<typename T>
    T chooseRandom(const QList<T> &list) {
        if (list.isEmpty()) {
            return T();
        }
        int index = generateInt(0, list.size() - 1);
        return list[index];
    }
    
private:
    QRandomGenerator *m_generator;
};

#endif // RANDOMGENERATOR_H